-- *****************************************************************************
-- Juniper-DOS-PROTECTION-PLATFORM-MIB
--
-- Juniper Networks Enterprise MIB
--   DOS Protection MIB (platform)
--
-- Copyright (c) 2005-2006 Juniper Networks, Inc.
--   All Rights Reserved.
-- *****************************************************************************
Juniper-DOS-PROTECTION-PLATFORM-MIB  DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,  Counter32,  
                Unsigned32, Integer32
        FROM SNMPv2-SMI
        JuniEnable
                FROM Juniper-TC
    TEXTUAL-CONVENTION, TruthValue, MacAddress, DisplayString
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    InterfaceIndex
        FROM IF-MIB
    juniMibs
        FROM Juniper-MIBs
        JuniDosProtectionProtocolType, JuniDosProtectionPriorityType, JuniDosProtectionProtocolState, 
                JuniDosProtectionScfdsTableOverflowState
                FROM Juniper-DOS-PROTECTION-MIB;


juniDosProtectionPlatformMIB  MODULE-IDENTITY
    LAST-UPDATED "200607010000Z"  -- 01-Jul-2006 00:00
    ORGANIZATION "Juniper Networks, Inc."
    CONTACT-INFO
        "       Juniper Networks, Inc.
        Postal: 10 Technology Park Drive
                Westford, MA  01886-3146
                USA
        Tel:    +1 978 589 5800
        Email:  mib@Juniper.net"
    DESCRIPTION 
                "The DOS Protection MIB for the Juniper E-Series product family. 
                This MIB contains managed objects for the DOS Protection 
                application, which are platform specific. Management objects are 
                provided to control and monitor the DOS protection application."
        REVISION   "200607010000Z"  -- 01-Jul-2006 00:00   JUNOSe -.-
    DESCRIPTION
        "Added dos-protection-group support and added MAC address       
                to flow traps." 
        REVISION   "200601010000Z"  -- 01-Jan-2006 00:00   JUNOSe 7.3
    DESCRIPTION
        "Initial version of this MIB module."   
    ::= { juniMibs 81 }                  


-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Managed objects
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniDosProtectionPlatformObjects        OBJECT IDENTIFIER ::= { juniDosProtectionPlatformMIB 1 }
juniDosProtectionPlatformScfdsGroup     OBJECT IDENTIFIER ::= { juniDosProtectionPlatformObjects 1 }
juniDosProtectionPlatformDpgGroup               OBJECT IDENTIFIER ::= { juniDosProtectionPlatformObjects 2 }
--
-- slot based table for protocol state
--

juniDosProtectionScfdsSlotProtocolTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF JuniDosProtectionScfdsSlotProtocolEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "The information for the DOS protection control protocols 
                for a specific slot."

        ::= { juniDosProtectionPlatformScfdsGroup 1 } 

juniDosProtectionScfdsSlotProtocolEntry OBJECT-TYPE
        SYNTAX          JuniDosProtectionScfdsSlotProtocolEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "The information for an individual control protocol on
                a specific slot."

        INDEX   {  juniDosProtectionScfdsSlotProtocolSlot,
                  juniDosProtectionScfdsSlotProtocolIndex }

        ::= { juniDosProtectionScfdsSlotProtocolTable 1 } 
        
JuniDosProtectionScfdsSlotProtocolEntry ::= SEQUENCE {
    juniDosProtectionScfdsSlotProtocolSlot      Unsigned32,
        juniDosProtectionScfdsSlotProtocolIndex         JuniDosProtectionProtocolType,
        juniDosProtectionScfdsSlotProtocolState         JuniDosProtectionProtocolState,
        juniDosProtectionScfdsSlotProtocolTransitions   Counter32}

juniDosProtectionScfdsSlotProtocolSlot OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The slot value for the entry."

    ::= { juniDosProtectionScfdsSlotProtocolEntry 1 }

juniDosProtectionScfdsSlotProtocolIndex OBJECT-TYPE
    SYNTAX      JuniDosProtectionProtocolType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The control protocol value for the entry."

    ::= { juniDosProtectionScfdsSlotProtocolEntry 2 }

juniDosProtectionScfdsSlotProtocolState OBJECT-TYPE
        SYNTAX          JuniDosProtectionProtocolState
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The current state of the protocol.  This object will return inTrouble(2)
                if the specific slot referenced is reporting that the protocol is currently
                being watched for suspicious flows. If the module is not reporting that 
                this protocol is being watched this object will return ok(1). 

                A protocol is in trouble for a slot when the sum of the rate of all flows 
                for the protocol is over the limit for that protocol."

    ::= { juniDosProtectionScfdsSlotProtocolEntry 3 }

juniDosProtectionScfdsSlotProtocolTransitions OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The number of transitions to 'inTrouble' that this control protocol 
                has made for this slot."

    ::= { juniDosProtectionScfdsSlotProtocolEntry 4 }


--
-- slot based flow table
--

juniDosProtectionScfdsSlotFlowTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF JuniDosProtectionScfdsSlotFlowEntry
        MAX-ACCESS      not-accessible
        STATUS          obsolete
        DESCRIPTION 
                "Information about suspicious control flows."

        ::= { juniDosProtectionPlatformScfdsGroup 2 } 

juniDosProtectionScfdsSlotFlowEntry     OBJECT-TYPE
        SYNTAX          JuniDosProtectionScfdsSlotFlowEntry
        MAX-ACCESS      not-accessible
        STATUS          obsolete
        DESCRIPTION
                "Information about a suspicious control flow."

        INDEX   { juniDosProtectionScfdsSlotFlowSlot,
                          juniDosProtectionScfdsSlotFlowIfIndex,
                          juniDosProtectionScfdsSlotFlowGroupId,
                  juniDosProtectionScfdsSlotFlowProtocol }

        ::= { juniDosProtectionScfdsSlotFlowTable 1 } 
        
JuniDosProtectionScfdsSlotFlowEntry ::= SEQUENCE {
        juniDosProtectionScfdsSlotFlowSlot              Unsigned32,
        juniDosProtectionScfdsSlotFlowIfIndex           InterfaceIndex,
        juniDosProtectionScfdsSlotFlowGroupId     Unsigned32,
        juniDosProtectionScfdsSlotFlowProtocol  JuniDosProtectionProtocolType,
        juniDosProtectionScfdsSlotFlowRate              Unsigned32,
        juniDosProtectionScfdsSlotFlowPeakRate  Unsigned32,
        juniDosProtectionScfdsSlotFlowTimeFlagged       Unsigned32,
        juniDosProtectionScfdsSlotFlowIngressSlot       Integer32,
        juniDosProtectionScfdsSlotFlowGroup       TruthValue,
        juniDosProtectionScfdsSlotFlowClearEntry        INTEGER}

juniDosProtectionScfdsSlotFlowSlot      OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      not-accessible
        STATUS          obsolete
        DESCRIPTION 
                "The slot value for the flow."

    ::= { juniDosProtectionScfdsSlotFlowEntry 1 }

juniDosProtectionScfdsSlotFlowIfIndex   OBJECT-TYPE
        SYNTAX          InterfaceIndex
        MAX-ACCESS      not-accessible
        STATUS          obsolete
        DESCRIPTION 
                "The ifIndex value for the flow. For group flows, this value
                will be zero."

    ::= { juniDosProtectionScfdsSlotFlowEntry 2 }

juniDosProtectionScfdsSlotFlowGroupId   OBJECT-TYPE
        SYNTAX          Unsigned32(0..15)
        MAX-ACCESS      not-accessible
        STATUS          obsolete
        DESCRIPTION 
                "The group id for the flow. The group id will be zero for an individual 
                flow. It is non-zero when the entry represents a group of flows."

    ::= { juniDosProtectionScfdsSlotFlowEntry 3 }

juniDosProtectionScfdsSlotFlowProtocol OBJECT-TYPE
        SYNTAX          JuniDosProtectionProtocolType
        MAX-ACCESS      not-accessible
        STATUS          obsolete
        DESCRIPTION 
                "The control protocol for the flow."

    ::= { juniDosProtectionScfdsSlotFlowEntry 4 }

juniDosProtectionScfdsSlotFlowRate OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          obsolete
        DESCRIPTION 
                "The current rate in packets per second for the flow."

    ::= { juniDosProtectionScfdsSlotFlowEntry 5 }

juniDosProtectionScfdsSlotFlowPeakRate OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          obsolete
        DESCRIPTION 
                "The peak rate in packets per second for the flow."

    ::= { juniDosProtectionScfdsSlotFlowEntry 6 }

juniDosProtectionScfdsSlotFlowTimeFlagged       OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          obsolete
        DESCRIPTION 
                "The sysUpTime value for the time when the flow was
                determined to be suspicious."

    ::= { juniDosProtectionScfdsSlotFlowEntry 7 }

juniDosProtectionScfdsSlotFlowIngressSlot       OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
                "For control flow that are monitored on the egress 
                processor in the forwarding path, this value will 
                indicate the possible ingress slot for data stream that
                is possibly causing this suspicious flow control. This 
                object will report -1 when it is undefined"
        
    ::= { juniDosProtectionScfdsSlotFlowEntry 8 }

juniDosProtectionScfdsSlotFlowGroup       OBJECT-TYPE 
        SYNTAX     TruthValue
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
                "Indicates whether the flow is a group flow or not. A value of
                true(1) indicates that the flow represents a group of flows. 
                A value of false(2) indicates that the flow is an individual flow."
        
    ::= { juniDosProtectionScfdsSlotFlowEntry 9 }

juniDosProtectionScfdsSlotFlowClearEntry OBJECT-TYPE
        SYNTAX      INTEGER {
                    ok(0),
                    clear(1) }
    MAX-ACCESS  read-write
    STATUS      obsolete
    DESCRIPTION
        "When set to clear(1), the suspicious control flow
        is removed from the suspicious control flow table.  When set to 
                ok(0), there is no effect and the suspicious control flow 
                is unchanged.

        When read, always returns a value of ok(0)."

    ::= { juniDosProtectionScfdsSlotFlowEntry 10 }

--
-- slot based flow table (with MAC address)
--

juniDosProtectionScfdsSlotFlowMacTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF JuniDosProtectionScfdsSlotFlowMacEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "Information about suspicious control flows."

        ::= { juniDosProtectionPlatformScfdsGroup 4 } 

juniDosProtectionScfdsSlotFlowMacEntry  OBJECT-TYPE
        SYNTAX          JuniDosProtectionScfdsSlotFlowMacEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "Information about a suspicious control flow."

        INDEX   { juniDosProtectionScfdsSlotFlowMacSlot,
                          juniDosProtectionScfdsSlotFlowMacIfIndex,
                          juniDosProtectionScfdsSlotFlowMacGroupId,
                  juniDosProtectionScfdsSlotFlowMacProtocol,
                          juniDosProtectionScfdsSlotFlowMacSrcMac}

        ::= { juniDosProtectionScfdsSlotFlowMacTable 1 } 
        
JuniDosProtectionScfdsSlotFlowMacEntry ::= SEQUENCE {
        juniDosProtectionScfdsSlotFlowMacSlot           Unsigned32,
        juniDosProtectionScfdsSlotFlowMacIfIndex        InterfaceIndex,
        juniDosProtectionScfdsSlotFlowMacGroupId    Unsigned32,
        juniDosProtectionScfdsSlotFlowMacProtocol       JuniDosProtectionProtocolType,
        juniDosProtectionScfdsSlotFlowMacSrcMac         MacAddress,
        juniDosProtectionScfdsSlotFlowMacRate           Unsigned32,
        juniDosProtectionScfdsSlotFlowMacPeakRate       Unsigned32,
        juniDosProtectionScfdsSlotFlowMacTimeFlagged    Unsigned32,
        juniDosProtectionScfdsSlotFlowMacIngressSlot    Integer32,
        juniDosProtectionScfdsSlotFlowMacGroup      TruthValue,
        juniDosProtectionScfdsSlotFlowMacClearEntry     INTEGER}

juniDosProtectionScfdsSlotFlowMacSlot   OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "The slot value for the flow."

    ::= { juniDosProtectionScfdsSlotFlowMacEntry 1 }

juniDosProtectionScfdsSlotFlowMacIfIndex        OBJECT-TYPE
        SYNTAX          InterfaceIndex
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "The ifIndex value for the flow. For group flows, this value
                will be zero."

    ::= { juniDosProtectionScfdsSlotFlowMacEntry 2 }

juniDosProtectionScfdsSlotFlowMacGroupId        OBJECT-TYPE
        SYNTAX          Unsigned32(0..15)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "The group id for the flow. The group id will be zero for an individual 
                flow. It is non-zero when the entry represents a group of flows."

    ::= { juniDosProtectionScfdsSlotFlowMacEntry 3 }

juniDosProtectionScfdsSlotFlowMacProtocol OBJECT-TYPE
        SYNTAX          JuniDosProtectionProtocolType
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "The control protocol for the flow."

    ::= { juniDosProtectionScfdsSlotFlowMacEntry 4 }

juniDosProtectionScfdsSlotFlowMacSrcMac OBJECT-TYPE
        SYNTAX          MacAddress
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "The source MAC address for the flow. A null
                source MAC address indicates that no source
                physical address was available."

    ::= { juniDosProtectionScfdsSlotFlowMacEntry 5 }

juniDosProtectionScfdsSlotFlowMacRate OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The current rate in packets per second for the flow."

    ::= { juniDosProtectionScfdsSlotFlowMacEntry 6 }

juniDosProtectionScfdsSlotFlowMacPeakRate OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The peak rate in packets per second for the flow."

    ::= { juniDosProtectionScfdsSlotFlowMacEntry 7 }

juniDosProtectionScfdsSlotFlowMacTimeFlagged    OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The sysUpTime value for the time when the flow was
                determined to be suspicious."

    ::= { juniDosProtectionScfdsSlotFlowMacEntry 8 }

juniDosProtectionScfdsSlotFlowMacIngressSlot    OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "For control flow that are monitored on the egress 
                processor in the forwarding path, this value will 
                indicate the possible ingress slot for data stream that
                is possibly causing this suspicious flow control. This 
                object will report -1 when it is undefined"
        
    ::= { juniDosProtectionScfdsSlotFlowMacEntry 9 }

juniDosProtectionScfdsSlotFlowMacGroup       OBJECT-TYPE 
        SYNTAX     TruthValue
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Indicates whether the flow is a group flow or not. A value of
                true(1) indicates that the flow represents a group of flows. 
                A value of false(0) indicates that the flow is an individual flow."
        
    ::= { juniDosProtectionScfdsSlotFlowMacEntry 10 }

juniDosProtectionScfdsSlotFlowMacClearEntry OBJECT-TYPE
        SYNTAX      INTEGER {
                    ok(0),
                    clear(1) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When set to clear(1), the suspicious control flow
        is removed from the suspicious control flow table.  When set to 
                ok(0), there is no effect and the suspicious control flow 
                is unchanged.

        When read, always returns a value of ok(0)."

    ::= { juniDosProtectionScfdsSlotFlowMacEntry 11 }


--
-- per slot information
--

juniDosProtectionScfdsSlotTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF JuniDosProtectionScfdsSlotEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "The suspicious control flow information for each slot."

        ::= { juniDosProtectionPlatformScfdsGroup 3 } 

juniDosProtectionScfdsSlotEntry OBJECT-TYPE
        SYNTAX          JuniDosProtectionScfdsSlotEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "The information for a specific slot."

        INDEX   { juniDosProtectionScfdsSlotFlowSlot }


        ::= { juniDosProtectionScfdsSlotTable 1 } 
        
JuniDosProtectionScfdsSlotEntry ::= SEQUENCE {
        juniDosProtectionScfdsSlotSlot                          Unsigned32,
        juniDosProtectionScfdsSlotClearAll                      INTEGER,        
        juniDosProtectionScfdsSlotDiscontinuityTime     Unsigned32,
        juniDosProtectionScfdsSlotTableOverflowState  
                        JuniDosProtectionScfdsTableOverflowState,
        juniDosProtectionScfdsSlotCurrentSuspiciousFlows        Counter32,
        juniDosProtectionScfdsSlotNumberSuspiciousFlows Counter32,
        juniDosProtectionScfdsSlotCurrentSuspiciousFlowGroups   Counter32,
        juniDosProtectionScfdsSlotNumberSuspiciousFlowGroups    Counter32,
        juniDosProtectionScfdsSlotCurrentFalseNegativeFlows     Counter32,
        juniDosProtectionScfdsSlotNumberFalseNegativeFlows      Counter32,
        juniDosProtectionScfdsSlotOverflows                             Counter32}

juniDosProtectionScfdsSlotSlot  OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "The slot value for this entry."

    ::= { juniDosProtectionScfdsSlotEntry 1 }

juniDosProtectionScfdsSlotClearAll OBJECT-TYPE
    SYNTAX      INTEGER {
                                        ok(0),
                    clear(1) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When set to clear(1), the suspicious control flow detection system
        is cleared for this slot.  When set to ok(0), there is no effect and the 
                suspicious control flow detection system is unchanged.
                
                By clearing the suspicious control flow detection system all flows 
                on the slot are removed from the suspicious flow table.

        When read, always returns a value of ok(0)."

        ::= { juniDosProtectionScfdsSlotEntry 2 }


juniDosProtectionScfdsSlotDiscontinuityTime OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sysUpTime at which the counters were re-adjusted due to 
                slot restart."

        ::= { juniDosProtectionScfdsSlotEntry 3 }

juniDosProtectionScfdsSlotTableOverflowState    OBJECT-TYPE
        SYNTAX          JuniDosProtectionScfdsTableOverflowState
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "Indicates whether this slot is under a resource 
                shortage situation. A value of notOverflowingOrGrouping(1) indicates
                that there is no resource shortage on the slot. A value of 
                grouping(2) or overflowing(3) indicates that this module 
                is suffering from a resource shortage and has acted according to the
                state of the juniDosProtectionScfdsGlobalGrouping object."

        ::= { juniDosProtectionScfdsSlotEntry 4 }

juniDosProtectionScfdsSlotCurrentSuspiciousFlows        OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The number of flows currently marked as suspicious for this slot."

        ::= { juniDosProtectionScfdsSlotEntry 5 } 

juniDosProtectionScfdsSlotNumberSuspiciousFlows OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The number of suspicious flows seen on this slot, since slot restart"

        ::= { juniDosProtectionScfdsSlotEntry 6 } 

juniDosProtectionScfdsSlotNumberSuspiciousFlowGroups    OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The number of suspicius flow groups seen on this slot since slot
                restart."

        ::= { juniDosProtectionScfdsSlotEntry 7 } 

juniDosProtectionScfdsSlotCurrentSuspiciousFlowGroups   OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The number of flows currently falsely considered suspicious for
                this slot."

        ::= { juniDosProtectionScfdsSlotEntry 8 } 

juniDosProtectionScfdsSlotCurrentFalseNegativeFlows     OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The number of flows currently falsely considered suspicious on
                this slot."


        ::= { juniDosProtectionScfdsSlotEntry 9 } 

juniDosProtectionScfdsSlotNumberFalseNegativeFlows      OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The number of suspicious flows seen on this slot, since this 
                slot restart."

        ::= { juniDosProtectionScfdsSlotEntry 10 } 


juniDosProtectionScfdsSlotOverflows     OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The number of times this slot has had a table overflow."


        ::= { juniDosProtectionScfdsSlotEntry 11 } 


--
-- dos protection group slot info
--
juniDosProtectionDpgSlotRateTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF JuniDosProtectionDpgSlotRateEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "This table provides information about the calculated minimum
                rates (as well as the maximum rates) for each dos-protection-group 
                control protocol for each line module."

        ::= { juniDosProtectionPlatformDpgGroup 1 }

juniDosProtectionDpgSlotRateEntry OBJECT-TYPE
        SYNTAX          JuniDosProtectionDpgSlotRateEntry
        MAX-ACCESS  not-accessible
        STATUS          current
        DESCRIPTION 
                "The rates for an individual dos-protection-group on an line
                module for a control protocol."

        INDEX           {       juniDosProtectionDpgSlotRateSlot,
                        juniDosProtectionDpgSlotRateDpgName,
                                        juniDosProtectionDpgSlotRateProtocol}

        ::= { juniDosProtectionDpgSlotRateTable 1 }

JuniDosProtectionDpgSlotRateEntry ::= SEQUENCE {
        juniDosProtectionDpgSlotRateSlot                                Unsigned32,
        juniDosProtectionDpgSlotRateDpgName                     DisplayString,
        juniDosProtectionDpgSlotRateProtocol                    JuniDosProtectionProtocolType,
        juniDosProtectionDpgSlotRateMinRate                     Unsigned32,
        juniDosProtectionDpgSlotRateMaxRate                     Unsigned32,
        juniDosProtectionDpgSlotRateMinBurst                    Unsigned32,
        juniDosProtectionDpgSlotRateMaxBurst                    Unsigned32}

juniDosProtectionDpgSlotRateSlot        OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "The slot value for this entry."

    ::= { juniDosProtectionDpgSlotRateEntry 1 }

juniDosProtectionDpgSlotRateDpgName     OBJECT-TYPE
        SYNTAX          DisplayString (SIZE(1..32))
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION 
                "The dos-protection-group name for this entry."

    ::= { juniDosProtectionDpgSlotRateEntry 2 }

juniDosProtectionDpgSlotRateProtocol OBJECT-TYPE
        SYNTAX          JuniDosProtectionProtocolType
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "The control protocol for this entry."

    ::= { juniDosProtectionDpgSlotRateEntry 3 }

juniDosProtectionDpgSlotRateMinRate     OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The minimum rate for this control protocol on this slot for this 
                dos-protection-group. This value is calculated based on the
                priority rate and oversubscription as well as the control protocol 
                weight"

    ::= { juniDosProtectionDpgSlotRateEntry 4 }

juniDosProtectionDpgSlotRateMaxRate     OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The maximum rate for this protocol on this slot for this 
                dos-protection-group. This is equivalent to the configured
                rate for the dos-protection-group"

    ::= { juniDosProtectionDpgSlotRateEntry 5 }

juniDosProtectionDpgSlotRateMinBurst    OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The minimum burst for this control protocol on this slot for this 
                dos-protection-group. This value is calculated based on the
                priority burst and oversubscription as well as the control protocol 
                weight"

    ::= { juniDosProtectionDpgSlotRateEntry 6 }

juniDosProtectionDpgSlotRateMaxBurst    OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION 
                "The maximum burst for this protocol on this slot for this 
                dos-protection-group. This is equivalent to the configured
                burst for the dos-protection-group"

    ::= { juniDosProtectionDpgSlotRateEntry 7 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Notifications
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniDosProtectionPlatformTraps OBJECT IDENTIFIER ::= { juniDosProtectionPlatformMIB 0 }
juniDosProtectionPlatformTrapControl OBJECT IDENTIFIER ::= { juniDosProtectionPlatformMIB 2 }
juniDosProtectionPlatformScfdsTraps OBJECT IDENTIFIER ::= { juniDosProtectionPlatformTraps 0 }


juniDosProtectionScfdsSlot OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION 
                "The slot value."

        ::= { juniDosProtectionPlatformTrapControl 1 }

juniDosProtectionPriority OBJECT-TYPE
        SYNTAX JuniDosProtectionPriorityType
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION 
                "The control priority value."

        ::= { juniDosProtectionPlatformTrapControl 2 }

juniDosProtectionProtocol OBJECT-TYPE
        SYNTAX JuniDosProtectionProtocolType
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION 
                "The control protocol value."

        ::= { juniDosProtectionPlatformTrapControl 3 }

juniDosProtectionIfIndex OBJECT-TYPE
        SYNTAX InterfaceIndex
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION 
                "The ifIndex value."

        ::= { juniDosProtectionPlatformTrapControl 4 }

juniDosProtectionGroupId OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION 
                "The group id value."

        ::= { juniDosProtectionPlatformTrapControl 5 }

juniDosProtectionSrcPhysAddr OBJECT-TYPE
        SYNTAX MacAddress (SIZE(6))
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION 
                "The source physical MAC address."

        ::= { juniDosProtectionPlatformTrapControl 6 }

juniDosProtectionScfdsFlowRate OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION 
                "The flow rate at the creation time."

        ::= { juniDosProtectionPlatformTrapControl 7 }

---
--- traps
---

juniDosProtectionScfdsSuspiciousControlFlow NOTIFICATION-TYPE
        OBJECTS { juniDosProtectionIfIndex,
                          juniDosProtectionProtocol }
        STATUS  obsolete
        DESCRIPTION 
                "This trap will be generated when a control flow becomes 
                suspicious."
        
        ::= { juniDosProtectionPlatformScfdsTraps 1 }

juniDosProtectionScfdsNonSuspiciousControlFlow NOTIFICATION-TYPE
        OBJECTS { juniDosProtectionIfIndex,
                          juniDosProtectionProtocol }
        STATUS  obsolete
        DESCRIPTION 
                "This trap will be generated when a control flow becomes 
                no longer suspicious"
        
        ::= { juniDosProtectionPlatformScfdsTraps 2 }

juniDosProtectionScfdsSuspiciousControlFlowGroup NOTIFICATION-TYPE
        OBJECTS { juniDosProtectionScfdsSlot,
                          juniDosProtectionGroupId,
                          juniDosProtectionProtocol }
        STATUS  current
        DESCRIPTION 
                "This trap will be generated when a control flow that
                represents a group becomes suspicious."

        
        ::= { juniDosProtectionPlatformScfdsTraps 3 }

juniDosProtectionScfdsNonSuspiciousControlFlowGroup NOTIFICATION-TYPE
        OBJECTS { juniDosProtectionScfdsSlot,
                          juniDosProtectionGroupId,
                          juniDosProtectionProtocol }
        STATUS  current
        DESCRIPTION 
                "This trap will be generated when a control flow that
                represents a group becomes no longer suspicious."
        
        ::= { juniDosProtectionPlatformScfdsTraps 4 }

juniDosProtectionScfdsTableFull NOTIFICATION-TYPE
        OBJECTS {  juniDosProtectionScfdsSlot }
        STATUS  current
        DESCRIPTION 
                "This trap will be generated when the suspicious flow
                control table becomes full on a slot."
        
        ::= { juniDosProtectionPlatformScfdsTraps 5 }

juniDosProtectionScfdsTableNotFull NOTIFICATION-TYPE
        OBJECTS {  juniDosProtectionScfdsSlot }
        STATUS  current
        DESCRIPTION 
                "This trap will be generated when the suspicious flow
                control table is no longer full on a slot."
        
        ::= { juniDosProtectionPlatformScfdsTraps 6 }

juniDosProtectionScfdsGroupingInUse NOTIFICATION-TYPE
        OBJECTS {  juniDosProtectionScfdsSlot }
        STATUS  current
        DESCRIPTION 
                "This trap will be generated when the suspicious flow
                control system begins to group flow controls on a slot, 
                due to the suspicious flow control table being full."
        
        ::= { juniDosProtectionPlatformScfdsTraps 7 }

juniDosProtectionScfdsSuspiciousProtocol NOTIFICATION-TYPE
        OBJECTS { juniDosProtectionScfdsSlot,
                         juniDosProtectionProtocol }
        STATUS  current
        DESCRIPTION 
                "This trap will be generated when a control protocol
                becomes suspicious on a slot, and therefore the suspicious
                control flow system begins to watch flows of this 
                control protocol type."
        
        ::= { juniDosProtectionPlatformScfdsTraps 8 }

juniDosProtectionScfdsNonSuspiciousProtocol NOTIFICATION-TYPE
        OBJECTS { juniDosProtectionScfdsSlot,
                         juniDosProtectionProtocol }
        STATUS  current
        DESCRIPTION 
                "This trap will be generated when a control protocol
                becomes no longer suspicious on a slot, and therefore the suspicious
                control flow system will no longer watch flows of this 
                control protocol type."
        
        ::= { juniDosProtectionPlatformScfdsTraps 9 }


juniDosProtectionScfdsSuspiciousPriority NOTIFICATION-TYPE
        OBJECTS {juniDosProtectionScfdsSlot,
                         juniDosProtectionPriority }
        STATUS  current
        DESCRIPTION 
                "This trap will be generated when a control priority
                becomes suspicious on a slot."
        
        ::= { juniDosProtectionPlatformScfdsTraps 10 }

juniDosProtectionScfdsNonSuspiciousPriority NOTIFICATION-TYPE
        OBJECTS { juniDosProtectionScfdsSlot,
                          juniDosProtectionPriority }

        STATUS  current
        DESCRIPTION 
                "This trap will be generated when a control priority
                becomes no longer suspicious on a slot."
        
        ::= { juniDosProtectionPlatformScfdsTraps 11 }

juniDosProtectionScfdsSuspiciousControlFlowMac NOTIFICATION-TYPE
        OBJECTS { juniDosProtectionIfIndex,
                          juniDosProtectionProtocol,
                          juniDosProtectionSrcPhysAddr,
                          juniDosProtectionScfdsFlowRate}
        STATUS  current
        DESCRIPTION 
                "This trap will be generated when a control flow becomes 
                suspicious."
        
        ::= { juniDosProtectionPlatformScfdsTraps 12 }

juniDosProtectionScfdsNonSuspiciousControlFlowMac NOTIFICATION-TYPE
        OBJECTS { juniDosProtectionIfIndex,
                          juniDosProtectionProtocol,
                          juniDosProtectionSrcPhysAddr}
        STATUS  obsolete
        DESCRIPTION 
                "This trap will be generated when a control flow becomes 
                no longer suspicious"
        
        ::= { juniDosProtectionPlatformScfdsTraps 13 }
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Conformance information
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniDosProtectionPlatformMIBConformance  OBJECT IDENTIFIER ::= { juniDosProtectionPlatformMIB 4 }
juniDosProtectionPlatformMIBCompliances  OBJECT IDENTIFIER ::= { juniDosProtectionPlatformMIBConformance 1 }
juniDosProtectionPlatformMIBGroups       OBJECT IDENTIFIER ::= { juniDosProtectionPlatformMIBConformance 2 }


juniDosProtectionCompliance  MODULE-COMPLIANCE
    STATUS      obsolete
    DESCRIPTION
                "The compliance statement for entities which implement the Juniper Dos
                Protection Platform specific MIB. Obsoleted with the addition of 
                dos-protection groups."
    MODULE   -- this module
        MANDATORY-GROUPS {
--PSIM(Modif)             juniDosProtectionPlatformGroup,
            juniDosProtectionGroup,
--PSIM(Modif)             juniDosProtectionPlatformNotificationGroup }
            juniDosProtectionNotificationGroup }
    ::= { juniDosProtectionPlatformMIBCompliances 1 }  

juniDosProtectionCompliance2  MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
                "The compliance statement for entities which implement the Juniper Dos
                Protection Platform specific MIB."
    MODULE   -- this module
        MANDATORY-GROUPS {
--PSIM(Modif)             juniDosProtectionPlatformGroup1,
            juniDosProtectionGroup1,
--PSIM(Modif)             juniDosProtectionPlatformNotificationGroup1 }
            juniDosProtectionNotificationGroup1 }
    ::= { juniDosProtectionPlatformMIBCompliances 2 }  

--
-- units of conformance
--
juniDosProtectionGroup OBJECT-GROUP
        OBJECTS {juniDosProtectionScfdsSlotProtocolState, 
                        juniDosProtectionScfdsSlotProtocolTransitions, 
                        juniDosProtectionScfdsSlotFlowRate, 
                        juniDosProtectionScfdsSlotFlowPeakRate, 
                        juniDosProtectionScfdsSlotFlowTimeFlagged,      
                        juniDosProtectionScfdsSlotFlowClearEntry, 
                        juniDosProtectionScfdsSlotFlowIngressSlot,
                        juniDosProtectionScfdsSlotFlowGroup,
                        juniDosProtectionScfdsSlotDiscontinuityTime, 
                        juniDosProtectionScfdsSlotTableOverflowState,   
                        juniDosProtectionScfdsSlotCurrentSuspiciousFlows,       
                        juniDosProtectionScfdsSlotNumberSuspiciousFlows,        
                        juniDosProtectionScfdsSlotNumberSuspiciousFlowGroups,   
                        juniDosProtectionScfdsSlotCurrentSuspiciousFlowGroups,  
                        juniDosProtectionScfdsSlotCurrentFalseNegativeFlows,    
                        juniDosProtectionScfdsSlotNumberFalseNegativeFlows,     
                        juniDosProtectionScfdsSlotOverflows     }
    STATUS current
        DESCRIPTION 
                "A collection of objects providing management of platform 
                specific aspects of the DOS protection application in a 
                Juniper product. This became obsolete with the addition
                of MAC address in the flow table and the addition of 
                dos-protection-groups."

        ::= { juniDosProtectionPlatformMIBGroups 1 }


juniDosProtectionNotificationGroup NOTIFICATION-GROUP
        NOTIFICATIONS {
                        juniDosProtectionScfdsSuspiciousControlFlow,
                        juniDosProtectionScfdsNonSuspiciousControlFlow,
                        juniDosProtectionScfdsSuspiciousControlFlowGroup,
                        juniDosProtectionScfdsNonSuspiciousControlFlowGroup,
                        juniDosProtectionScfdsTableFull,
                        juniDosProtectionScfdsTableNotFull,
                        juniDosProtectionScfdsGroupingInUse,
                        juniDosProtectionScfdsSuspiciousProtocol,
                        juniDosProtectionScfdsNonSuspiciousProtocol,
                        juniDosProtectionScfdsSuspiciousPriority,
                        juniDosProtectionScfdsNonSuspiciousPriority }
    STATUS current
        DESCRIPTION 
                "Collection of objects for DOS protection application 
                notifications in a Juniper product.This became obsolete with the 
                addition of MAC address in flow traps."

        ::= { juniDosProtectionPlatformMIBGroups 2 }

juniDosProtectionGroup1 OBJECT-GROUP
        OBJECTS {juniDosProtectionScfdsSlotProtocolState, 
                        juniDosProtectionScfdsSlotProtocolTransitions, 
                        juniDosProtectionScfdsSlotFlowMacRate, 
                        juniDosProtectionScfdsSlotFlowMacPeakRate, 
                        juniDosProtectionScfdsSlotFlowMacTimeFlagged,   
                        juniDosProtectionScfdsSlotFlowMacClearEntry, 
                        juniDosProtectionScfdsSlotFlowMacIngressSlot,
                        juniDosProtectionScfdsSlotFlowMacGroup,
                        juniDosProtectionScfdsSlotDiscontinuityTime, 
                        juniDosProtectionScfdsSlotTableOverflowState,   
                        juniDosProtectionScfdsSlotCurrentSuspiciousFlows,       
                        juniDosProtectionScfdsSlotNumberSuspiciousFlows,        
                        juniDosProtectionScfdsSlotNumberSuspiciousFlowGroups,   
                        juniDosProtectionScfdsSlotCurrentSuspiciousFlowGroups,  
                        juniDosProtectionScfdsSlotCurrentFalseNegativeFlows,    
                        juniDosProtectionScfdsSlotNumberFalseNegativeFlows,     
                        juniDosProtectionScfdsSlotOverflows,    
                        juniDosProtectionDpgSlotRateMinRate,
                        juniDosProtectionDpgSlotRateMaxRate,
                        juniDosProtectionDpgSlotRateMinBurst,
                        juniDosProtectionDpgSlotRateMaxBurst }

    STATUS current
        DESCRIPTION 
                "A collection of objects providing management of platform 
                specific aspects of the DOS protection application in a 
                Juniper product."

        ::= { juniDosProtectionPlatformMIBGroups 3 }

juniDosProtectionNotificationGroup1 NOTIFICATION-GROUP
        NOTIFICATIONS {
                        juniDosProtectionScfdsSuspiciousControlFlowMac,
                        juniDosProtectionScfdsNonSuspiciousControlFlowMac,
                        juniDosProtectionScfdsSuspiciousControlFlowGroup,
                        juniDosProtectionScfdsNonSuspiciousControlFlowGroup,
                        juniDosProtectionScfdsTableFull,
                        juniDosProtectionScfdsTableNotFull,
                        juniDosProtectionScfdsGroupingInUse,
                        juniDosProtectionScfdsSuspiciousProtocol,
                        juniDosProtectionScfdsNonSuspiciousProtocol,
                        juniDosProtectionScfdsSuspiciousPriority,
                        juniDosProtectionScfdsNonSuspiciousPriority }
    STATUS current
        DESCRIPTION 
                "Collection of objects for DOS protection application 
                notifications in a Juniper product."

        ::= { juniDosProtectionPlatformMIBGroups 4 }
END